package com.ruoyi.backend.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile;

import javax.validation.constraints.NotNull;
import java.time.LocalDate;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("卫星数据上传对象")
public class SatelliteDTO {

    public interface Upload {
    }

    @ApiModelProperty("卫星ID; 后端自动生成，前端无需上传")
    private String satelliteId;

    @NotNull(groups = {Upload.class}, message = "矿山ID不能为空")
    private String mineId;

    @NotNull(groups = {Upload.class}, message = "卫星数据类型不能为空")
    private String productType;

    @NotNull(groups = {Upload.class}, message = "卫星类型不能为空")
    private String satelliteType;

    @NotNull(groups = {Upload.class}, message = "卫星影像文件名不能为空")
    private String productName;

    @NotNull(groups = {Upload.class}, message = "数据来源不能为空")
    private String dataSource;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @NotNull(groups = {Upload.class}, message = "数据时间不能为空")
    private LocalDate dataTime;

    @NotNull(groups = {Upload.class}, message = "空间覆盖不能为空")
    private String spatialCoverage;

    private Double cloudCoverage;

    @NotNull(groups = {Upload.class}, message = "卫星文件对应的存储桶名不能为空")
    private String minioBucketName;

    @NotNull(groups = {Upload.class}, message = "卫星文件对应的存储文件名不能为空")
    private String minioFileName;

    private String productLevel;

    @NotNull(groups = {Upload.class}, message = "epsg编码不能为空")
    private Integer epsgCode;

    private String bandSituation;

}
